Function Get-Join
{
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory = $True)]
        [Object[]]
        $private:Array1,
        
        [Parameter(Mandatory = $True)]
        [Object[]]
        $private:Array2
    )
    
    Process
    {
        $private:Dict1 = @{}
        ForEach ($private:x in $Array1)
        {
            $private:Dict1[$x]++
        }
        
        $private:Dict2 = @{}
        ForEach ($private:x in $Array2)
        {
            $private:Dict2[$x]++
        }
        
        $private:Dict = @{}
        ForEach ($private:x in $Dict1.Keys)
        {
            $private:Dict[$x]++
        }
        
        ForEach ($private:x in $Dict2.Keys)
        {
            $private:Dict[$x]++
        }
        
        Return $Dict.GetEnumerator() | Where-Object { $_.Value -Gt 1 } | ForEach-Object { $_.Name }
    }
}

Export-ModuleMember Get-Join
